package com.itheima.d10_generics_method;

import java.util.ArrayList;

public class Test {
    public static void main(String[] args) {
        //泛型使用和方法
        String rs =test("abc");
        System.out.println(rs);

        Dog g =test(new Dog());
        System.out.println(g);

        ArrayList<Car> cars = new ArrayList<>();
        cars.add(new Car());
        cars.add(new Car());
        go(cars);

        ArrayList<BMV> bmvs = new ArrayList<>();
        bmvs.add(new BMV());
        bmvs.add(new BMV());
        go(bmvs);

        ArrayList<BENZ> benz = new ArrayList<>();
        benz.add(new BENZ());
        benz.add(new BENZ());
        go(benz);

        /*ArrayList<Dog> dogs = new ArrayList<>();
        dogs.add(new Dog());
        dogs.add(new Dog());*/
        //go(dogs);
    }

    //?通配符，使用泛型时可以代表任意类型，  ?extends Car 表示上限，只能是Car的子类才行接受数据  ?super Car 表示下限，只能是Car的父类才行接受数据
    public static void go(ArrayList<?extends Car> cars){
        //cars.add(new Car());
    }


    //泛型方法
    public static <T> T test(T t){

        return t;
    }
}



